package com.rds.material.mapper;

import com.rds.common.api.material.domain.RdaPart;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface RdaPartMapper {

    /**
     * 根据id查询物料分类表
     *
     * @param id
     * @return 物料分类表
     */
    public RdaPart selectRdaPartByid(Long id);

    /**
     * 查询物料分类表列表
     *
     * @param rdaPart 物料分类表
     * @return 物料分类表集合
     */
    public List<RdaPart> selectRdaPartList(RdaPart rdaPart);

    /**
     * 新增物料
     *
     * @param rdaPart 物料分类表列表
     * @return 结果
     */
    public int insertRdaPart(RdaPart rdaPart);


    /**
     * 修改物料分类表列表
     *
     * @param rdaPart 物料分类表列表
     * @return 结果
     */
    public int updateRdaPart(RdaPart rdaPart);

    /**
     * 批量删除物料分类表列表
     *
     * @param ids 需要物料分类表ID
     * @return 结果
     */
    public int deleteRdaPartByIds(Long[] ids);

    /**
     * 批量删除物理树结果
     */
    public int deleteMaterialBillTrees(Long[] ids);

    /**
     * 批量删除物料分类表列表
     *
     * @param id 需要物料分类表ID
     * @return 结果
     */
    public int deleteRdaPartById(Long id);

    /**
     * 查询物料分类表列表
     *
     * @param rdaPart 物料分类表
     * @return 物料分类表集合
     */
    public List<RdaPart> selectRdaPartTreeList(RdaPart rdaPart);

    /**
     * 根据id查询物料下级
     * @param projectid 物料id
     * @return 物料分类表集合
     */
    public List<RdaPart> selectRdaPartTreeSubordinate(@Param("projectid") Long projectid, @Param("typeid") Long typeid);

    /**
     * 批量删除物料分类表列表
     *
     * @param ids 需要物料分类表ID
     * @return 结果
     */
    public int deleteRdaPartByLevel(Long[] ids);
}
